// pages/login.js
// 错误路径
// const http = require('./utils/http.js');

// 正确路径
const http = require('../utils/http.js');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    phone: '',
    username: '',
    email: '',
    password: '',
    showLoading: false,
    showError: false,
    errorMessage: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 检查是否已登录
    const token = wx.getStorageSync('token');
    if (token) {
      wx.switchTab({
        url: '/pages/index/index'
      });
    }
  },

  /**
   * 获取输入值
   */
  getInputValue: function(e) {
    const { name, value } = e.detail;
    this.setData({
      [name]: value
    });
  },

  /**
   * 验证表单
   */
  validateForm: function() {
    if (!this.data.phone) {
      this.setData({
        showError: true,
        errorMessage: '手机号不能为空'
      });
      return false;
    }

    // 简单的手机号验证
    if (!/^1[3-9]\d{9}$/.test(this.data.phone)) {
      this.setData({
        showError: true,
        errorMessage: '请输入有效的手机号'
      });
      return false;
    }

    if (!this.data.username) {
      this.setData({
        showError: true,
        errorMessage: '用户名不能为空'
      });
      return false;
    }

    if (!this.data.email) {
      this.setData({
        showError: true,
        errorMessage: '邮箱不能为空'
      });
      return false;
    }

    // 简单的邮箱验证
    if (!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(this.data.email)) {
      this.setData({
        showError: true,
        errorMessage: '请输入有效的邮箱'
      });
      return false;
    }

    if (!this.data.password) {
      this.setData({
        showError: true,
        errorMessage: '密码不能为空'
      });
      return false;
    }

    if (this.data.password.length < 6) {
      this.setData({
        showError: true,
        errorMessage: '密码长度不能少于6位'
      });
      return false;
    }

    return true;
  },

  /**
   * 登录
   */
  login: function() {
    if (!this.validateForm()) {
      return;
    }

    this.setData({
      showLoading: true
    });

    http.request(
      '/user/login',
      'POST',
      {
        phone: this.data.phone,
        username: this.data.username,
        email: this.data.email,
        password: this.data.password
      },
      {
        'content-type': 'application/json'
      },
      (response) => {
        this.setData({
          showLoading: false
        });

        if (response.data.code === '0000') {
          // 登录成功，保存token
          wx.setStorageSync('token', response.data.data.token);
          wx.setStorageSync('userInfo', response.data.data.userInfo);

          // 跳转到主页面
          wx.switchTab({
            url: '/pages/index/index'
          });
        } else {
          this.setData({
            showError: true,
            errorMessage: response.data.msg || '登录失败，请重试'
          });
        }
      }
    );
  }
});